The present invention relates generally to a computer system of the type employing a windowing graphical user interface, and more specifically to a system allowing a user to create or modify a window, including its arrangement and contents, through which the user interacts with the computer system which is transportable between different operating system environments.
Modern personal computers ("PCs"), computer workstations, and in fact many electronic devices, run application software in a particular operating system environment ("OSE"). The application software is generally used to create, store or retrieve files which represent objects such as documents, mail notes, reminder items, etc. The application software has built into it a particular format for presenting the visual workspace in which the user inputs data, views data, and controls the various functions performed by the application. This is typically called a "user interface," and when the workspace consists of graphics elements, further referred to as a "graphical user interface." The user interface has a "view," which is the arrangement of items such as an address field, a control button, graphical information, etc. The view is usually presented to the user in a rectangular region of the screen called a "window." The data comprising the view is generally stored in a view file of record in a data base, and the data representing the object itself is generally stored in an object file or record in a data base. The view file and the data file are generally separable files.
In general, each application will have its own particular interface view (e.g., visual appearance, presentation style of particular data, order of elements, etc.) While the content of a view is often dictated by the application's requirements (e.g., one must specify at least the recipient of a mail note), the view or organization of the application's interface may be modified or customized to suit the user's particular needs.
Furthermore, the user interface typically varies from application to application. That is, a user typically has numerous applications on his PC, each having its own distinct interface. Certain applications are designed, however, to have similar user interfaces so that a user need remember or be familiar with only a single interface and its usage. This is most common in application "suites" in which several applications are packaged or bundled together, or where applications are specifically designed to operate in concert. Certain applications allow modification or customization of views permitting the user to arrange a view so as to be similar between different applications.
Often, a single application will be written in several versions to run in one of several OSEs. For example, the application software package Office 4.0.TM. from WordPerfect Corporation is written in a version for the DOS operating system (running Microsoft Windows.TM.), and a separate version for the Apple Macintosh.TM. operating system. Each OSE has its own particular native file format, file handling protocols, etc., yet it is highly desirable to allow a file created by an application operating in one OSE to be utilized by the same application (or in fact a different application) operating in another OSE. Although a limited commonality has been provided across different OSEs for specific applications, for example viewing a record in a data base from either OS/2 or Windows provided by Object Vision from Borland, Inc., such has not been provided in the art in terms of a graphical user interface for general applications. That is, the ability to create an object having a view in the graphical user interface of a first OSE and display that object in the graphical user interface of a second OSE for general applications has not been provided.
Applications must often store data to, or retrieve data from a memory. This memory may be organized and accessible in the form of a data base, using auxiliary software to control data handling, and/or may be some other type of memory arrangement. Where both a data base and other type of memory arrangement are employed it may be necessary to present data from both the data base and other type of memory arrangement. The ability to customize a single view of data from these two different sources in a first OSE which is interpretable in a second OSE has not been provided to the user.
Many applications allow for transmission of objects from one electronic device to another. In certain applications such as electronic mail packages objects are routinely created specifically for viewing by a recipient. Although a fair amount of flexibility is provided for customizing the view of a created and/or received object within a single OSE, the ability to control how a recipient views an object created in a different OSE than that in which he is viewing the object has not been provided in the art. Specifically, when a message is received in a recipient's OSE the message is displayed according to the view definition in the recipient's OSE. This is true regardless of the view definition in which the message was created.
In many applications, allowing the transmission of objects between electronic devices (typically over a network) is overseen by a "system administrator," who is the person having control over the traffic on the network, and responsibility for its proper use and functioning. In certain circumstances a systems administrator, or like individual, may desire to control the view of objects exchanged over the network. For example, it may be desirable that all mail notes sent over the network carry the author's company's logo, a proprietary rights message, etc. Or it may be desirable that certain individuals be copied on all correspondence between two designated correspondents. However, the ability for a system administrator or other party to control the view of selected objects, for example in a networked environment, has not been provided in the art. This is especially true where there are citizens of the network operating in different OSEs.
In any instance where a user is provided with the ability to customize the view of an object or the user interface of an application, keeping the interface for view customization flexible while limiting the complexity of the view customizing tools and process is desirable. Furthermore, utilization of a known paradigm or metaphor for the view customization tools and processes facilitates an easy and rapid mastery of customization. Of the few tools and processes for controlling the view of an object or the user interface of an application known in the art which provide a degree of flexibility while minimizing complexity and capitalizing on known paradigms or metaphors, none have provided a sufficient and robust ability to define objects whose views are extensible across different OSEs.
Finally, each OSE will have a unique set of functionalities and number of features, some of which are not provided for by other OSEs. That is, a view may include a particular functionality or feature, for example a sound clip, which may not be interpretable in OSEs other than that in which the object was created. Typically, an object containing an unrecognizable element would prevent the recognition of the entire object, or worse. However, it is desirable to be able to exchange any object having a view definition between OSEs. The art has heretofore not provided a sufficient tool or process for allowing the exchange of files containing functionalities or features not provided for in each OSE exchanging the object.